package com.sws.wx_msg_push.service;

import java.util.List;

import com.sws.common.core.domain.AjaxResult;
import com.sws.wx_msg_push.dto.ReservationReminderDTO;
import com.sws.wx_msg_push.dto.StaffReminderDTO;

/**
 * 预约提醒服务接口
 */
public interface ReservationReminderService {
    
    /**
     * 获取未来指定分钟内的预约
     * 
     * @param minutes 未来多少分钟内
     * @return 预约提醒列表
     */
    List<ReservationReminderDTO> getUpcomingReservations(int minutes);
    
    /**
     * 发送预约提醒消息
     * 
     * @param reminder 预约提醒信息
     * @return 发送结果
     */
    AjaxResult sendReservationReminder(ReservationReminderDTO reminder);
    
    /**
     * 执行预约提醒检查并发送
     * 
     * @param minutes 检查未来多少分钟内的预约
     * @return 结果信息
     */
    AjaxResult checkAndSendReminders(int minutes);
    
    /**
     * 同步微信模板到数据库
     * 
     * @return 操作结果
     */
    AjaxResult syncTemplates();
    
    /**
     * 获取模板详情
     * 
     * @param templateId 模板ID
     * @return 模板详情
     */
    AjaxResult getTemplateDetail(String templateId);
    
    /**
     * 获取未来指定分钟内的技师预约
     * 
     * @param minutes 未来多少分钟内
     * @return 技师预约提醒列表
     */
    List<ReservationReminderDTO> getUpcomingStaffReservations(int minutes);
    
    /**
     * 发送技师预约提醒消息
     * 
     * @param reminder 技师预约提醒信息
     * @return 发送结果
     */
    AjaxResult sendStaffReservationReminder(ReservationReminderDTO reminder);
    
    /**
     * 执行技师预约提醒检查并发送
     * @param minutes 检查未来多少分钟内的预约
     * @return 结果信息
     */
    AjaxResult checkAndSendStaffReminders(int minutes);

    /**
     *发送技师微信--客户到店通知
     * @param reminder
     */
    AjaxResult sendArriveReservationReminder(ReservationReminderDTO reminder);
}